DECF : (DECrement F)
Décrémente f et range le résultat dans d
(f) - 1 -> (d)
f est l'emplacement mémoire d 'un registre
Nombre de cycle d'horloge : 1
Indicateurs positionnés :
Z si résultat stocké dans le registre W ou f est nul ( Z=1 )
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f
Exemple :
Dans cet exemple on charge une valeur dans un registre ici 01h puis on décrémente cette valeur qui devient alors 00h ( flag Z = 1 dans cet exemple ) .
Reg_temp equ 0Ah OA correspond à l'adresse d' un registre temporaire
#define f 1 on affecte la valeur 1 à la variable f
Movlw 01h on charge 01h dans le registre W
Movwf Reg_temp on met W dans le registre temporaire
Decf Reg_temp, f on décrémente le contenu du registre temporaire
DECFSZ : (DECrement F Skip if Zéro)
Décrémente f et sauter l 'instruction suivante si f = 0
(f) - 1 -> ( d ) et sauter l' instruction suivante si f=0
f est l'emplacement mémoire d 'un registre
Nombre de cycle d'horloge : 1 ou 2
Indicateurs positionnés : Aucun
d est paramétrable
si d= 0 le résultat va dans le registre W
si d= 1 le résultat va dans le registre f